iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0

Create a S3 Bucket / Upload via Pre-signed URL

參加了好幾次鐵人賽,終於出現一個專屬於 AWS 的 Track 了。 作為一個 AWS 的使用者,不報名感覺說不過去呀。 所以今年想說來點不一樣的,在接下來的三十天,將會填滿這個臨時腦洞大開畫出來的題目。

使用智慧型手機好幾年的人,肯定都會遇到拍了很多照片影片,塵封在手機裡,幾乎不常回顧,但是刪掉又很可惜。 每次在手機搬家同步資料的時候,越來越耗時。 基於解決自己的問題,所以,我列出我需要的一些功能,但不保證做得出來,會盡力想辦法的!

許願池

  1. 用手機內建程式上傳照片、影片,到自己的空間

    影片上傳,存在自己的雲上
    順便分析與 Google Photos, iCloud, Dropbox 等雲端服務存放的成本
    思考利用 AWS 作為相簿解決方案的做法

  2. 用手機進行串流直播即時影像之外,也同時備份直播畫面到自己的空間

    直播串流,存在自己的雲上
    至少要分成常見的 Streaming 平台、自建的平台、AWS 版本的平台

  3. 分類、歸檔、上標籤,以利後續作為素材使用

    整理是最麻煩的,應該利用雲端降低人工介入

  4. 理解 RTMP、HLS、AVC、HEVC、H.264 與 MPEG-2 這些串流技術與規格

    不同種的影像串流格式,背後的坑非常大,裡面有很多影音創作者的痛點

  5. 自動產生重點摘要、short 短影音

    在 AI 越來越普及的年代,這部分應該很多人在做,所以到時候再來比較,社群和 AWS 各自做了什麼、包了什麼解決方案

  6. 自動產生字幕

    這個應該也變成顯學了,到時候還是選精準、便宜的方案

  7. 功能做好之後,總要有介面,最後串個介面

需求

  • 本串將會利用 AWS 作為主要運作環境,所以要先準備帳號。
  • 部分以前曾經寫過的東西,如果懶得寫,我會考慮引用自己或他人的文章連結。
  • 因為收入有限,AWS 目前沒有贊助我 Credits,有些太貴的服務,可能就嘗試一下下而已。 避免破產。 目標是這一個月總花費不要超過 台幣 5,000 元

基礎知識 / 流程簡述 / Amazon S3 入門

  1. 開 AWS 帳號,新帳號綁定信用卡,部分非常基礎的服務可以免費用一年。
  2. 因為明確知道檔案就是照片、影片、多媒體素材,所以建立 S3 Bucket 存放這種檔案。

    S3 好處

  3. 特性與限制
    1. S3 Bucket 是 Under 在 Region 底下的。 也就是說 S3 Bucket 不能跨區。 你可以開多個,使用 Cross-Region Replication (CRR) 去做跨區同步。
    2. 每個 Region 不能出現同名 Bucket,這會因為命名空間的緣故。

建立流程

  1. 在 AWS console 開啟搜尋 S3,或是直接開啟 https://ap-east-2.console.aws.amazon.com/s3/bucket/create?bucketType=general&region=ap-east-2#
  2. 選擇你要的 Region / 今年 Taipei 剛開,不然我來創個 Tokyo + Taipei Region Bucket
  3. 取名字,我先拿走 exsky-backup-media (tokyo)
  4. 取名字,我先拿走 exsky-backup-media-tp (taipei)
  5. 過時的功能預設沒開 / Disable ACLs
  6. Versioning 版本控制,好用歸好用,要多花錢存好幾份喔。 我先不開。

https://ithelp.ithome.com.tw/upload/images/20250912/20130149ieZWeJiGTR.png

上傳方法比較

第三方 APP

工程師自己設定手機快捷鍵方案

  • 用 Pre-signed URL + 手機瀏覽器
    • 可以透過設定 iOS / MacOS shortcut 方便操作
    • 需要具備 AWS CLI 環境
    • 需要事先打
    aws s3 presign s3://exsky-backup-media/uploads/myvideo.mp4  --region ap-northeast-1 --expires-in 3600
    aws s3 presign s3://exsky-backup-media-tp/uploads/myvideo.mp4 --region ap-east-2 --expires-in 3600
    
  • 因為傳輸要加密,所以讓 AWS 端先產生一對公鑰私鑰,並且送你公鑰在網址裡面。
  • 「等一下你就用公鑰加密,再丟到雲上來吧!」,期限是 3600 秒喔!
    # 東京
    https://exsky-backup-media.s3.ap-northeast-1.amazonaws.com/uploads/myvideo.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTDP42EBN3VH3656%2F20250911%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20250911T144637Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=略略略
    
    # 台北
    https://exsky-backup-media-tp.s3.ap-east-2.amazonaws.com/uploads/myvideo.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTDP42EBN3VH3656%2F20250912%2Fap-east-2%2Fs3%2Faws4_request&X-Amz-Date=20250912T073659Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=略略略
    

結論

https://ithelp.ithome.com.tw/upload/images/20250912/20130149dnRI2TzDUf.png

    • 上傳一個檔案而已欸,搞這麼複雜?
  • 所以才有商機,不就有人做出了付費 APP 了嗎!!
  • 另外可以把 Pre-signed 這件事情,擺在雲端主機或是 Serverless 服務中,打網址取號,今天寫不完就先到這吧。

參考資料

  1. AWS CLI 文件 - pre-signed

下一篇
【Day 2】 使用 EC2 搭建 RTMP 串流伺服器
系列文
無法成為片師也想拍 Vlog?!個人影音小工具的誕生!3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言